home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / archives / com / internet / stik / gls002b5.zoo / global.h < prev    next >
C/C++ Source or Header  |  1997-09-21  |  4KB  |  127 lines

  1. #ifndef GLOBAL_H
  2. #define GLOBAL_H
  3.  
  4. #ifndef COMPILER_H
  5. #include <compiler.h>
  6. #endif
  7.  
  8. #include <osbind.h>
  9. #include <mintbind.h>
  10. #include "drivers.h"
  11. #include "transprt.h"
  12.  
  13.  
  14. #ifdef DEBUG
  15. #define GS_TRACE    "GLUESTIK_TRACE"
  16. #endif
  17.  
  18. /* IDs for the semaphores and mailboxes we'll need */
  19. #define DMN_MBOX        0x43544D44L    /* 'GSMD' */
  20. #define DEBUG_SEM        0x43545444L    /* 'GSSD' */
  21. #define ARENA_SEM        0x43545441L    /* 'GSSA' */
  22. #ifdef MULTITHREAD
  23. #define FD_SEM            0x43545446L    /* 'GSSF' */
  24. #endif
  25. #define CIB_SEM            0x43545443L    /* 'GSSC' */
  26. #define CONFIG_SEM        0x43545456L    /* 'GSSV' */
  27.  
  28. /* I can never remember which one of these is which... */
  29. #define Psem_create(sem)    Psemaphore(0, (sem), 0)
  30. #define Psem_destroy(sem)    Psemaphore(1, (sem), 0)
  31. #define Psem_obtain(sem)    Psemaphore(2, (sem), -1)
  32. #define Psem_release(sem)    Psemaphore(3, (sem), 0)
  33.  
  34. /* Similarly.. */
  35. #define Pmsg_recv(mboxid, msgptr)        Pmsg(0, (mboxid), (msgptr))
  36. #define Pmsg_send(mboxid, msgptr)        Pmsg(1, (mboxid), (msgptr))
  37. #define Pmsg_send_certified(mboxid, msgptr)    Pmsg(2, (mboxid), (msgptr))
  38.  
  39. /* struct for Pmsg() */
  40. typedef struct {
  41.   long userlong1;
  42.   long userlong2;
  43.   short pid;
  44. } PMSG;
  45.  
  46. extern DRV_HDR* __CDECL do_get_dftab __PROTO((char *));
  47. extern int16 __CDECL do_ETM_exec __PROTO((char *));
  48.  
  49. extern void main_loop __PROTO((void));
  50.  
  51. /* Inelegant Hack(TM):  The daemon versions of these routines all get an
  52.    extra parameter containing the caller pid (can't use a global variable,
  53.    in case multithreading is enabled). */
  54.  
  55. #ifdef DAEMON
  56. #define CALLER_PID    int,
  57. #else
  58. #define CALLER_PID
  59. #endif
  60.  
  61. extern char* __CDECL do_KRmalloc __PROTO((CALLER_PID int32));
  62. extern void __CDECL do_KRfree __PROTO((CALLER_PID void *));
  63. extern int32 __CDECL do_KRgetfree __PROTO((CALLER_PID int16));
  64. extern char* __CDECL do_KRrealloc __PROTO((CALLER_PID char *, int32));
  65. extern char* __CDECL do_get_err_text __PROTO((int16));
  66. extern char* __CDECL do_getvstr __PROTO((CALLER_PID char *));
  67. extern int16 __CDECL do_carrier_detect __PROTO((void));
  68. extern int16 __CDECL do_TCP_open __PROTO((CALLER_PID uint32, int16, int16,
  69.                              uint16));
  70. extern int16 __CDECL do_TCP_close __PROTO((CALLER_PID int16, int16));
  71. extern int16 __CDECL do_TCP_send __PROTO((CALLER_PID int16, char* , int16));
  72. extern int16 __CDECL do_TCP_wait_state __PROTO((CALLER_PID int16, int16,
  73.                                int16));
  74. extern int16 __CDECL do_TCP_ack_wait __PROTO((int16, int16));
  75. extern int16 __CDECL do_UDP_open __PROTO((CALLER_PID uint32, int16));
  76. extern int16 __CDECL do_UDP_close __PROTO((CALLER_PID int16));
  77. extern int16 __CDECL do_UDP_send __PROTO((CALLER_PID int16, char *, int16));
  78. extern int16 __CDECL do_CNkick __PROTO((int16));
  79. extern int16 __CDECL do_CNbyte_count __PROTO((CALLER_PID int16));
  80. extern int16 __CDECL do_CNget_char __PROTO((CALLER_PID int16));
  81. extern NDB* __CDECL do_CNget_NDB __PROTO((CALLER_PID int16));
  82. extern int16 __CDECL do_CNget_block __PROTO((CALLER_PID int16, char *,
  83.                             int16));
  84. extern void __CDECL do_housekeep __PROTO((CALLER_PID void));
  85. extern int16 __CDECL do_resolve __PROTO((CALLER_PID char *, char **, uint32 *,
  86.                             int16));
  87. extern void __CDECL do_ser_disable __PROTO((void));
  88. extern void __CDECL do_ser_enable __PROTO((void));
  89. extern int16 __CDECL do_set_flag __PROTO((int16));
  90. extern void __CDECL do_clear_flag __PROTO((int16));
  91. extern CIB* __CDECL do_CNgetinfo __PROTO((CALLER_PID int16));
  92. extern int16 __CDECL do_on_port __PROTO((char *));
  93. extern void __CDECL do_off_port __PROTO((char *));
  94. extern int16 __CDECL do_setvstr __PROTO((CALLER_PID char *, char *));
  95. extern int16 __CDECL do_query_port __PROTO((char *));
  96. extern int16 __CDECL do_dummy __PROTO((int));
  97.  
  98. extern int init_mem __PROTO((void));
  99. extern int init_net __PROTO((void));
  100. extern int init_stubs __PROTO((void));
  101. extern int load_config_file __PROTO((void));
  102. extern void cleanup_net __PROTO((void));
  103. extern void cleanup_config __PROTO((void));
  104. extern void cleanup_mem __PROTO((void));
  105. #ifdef DEBUG
  106. extern int init_debug __PROTO((void));
  107. extern void cleanup_debug __PROTO((void));
  108. #endif
  109.  
  110. #ifdef DEBUG
  111. #define DBG_NOMSG    0
  112. #define DBG_FATAL    1
  113. #define DBG_ERROR    2
  114. #define DBG_SYSCALL    3
  115. #define DBG_TRACE    4
  116.  
  117. extern void log_entry(int, int, const char *, ...);
  118. extern int debug_level;
  119. #define LOG        (!debug_level)?((void)0):log_entry
  120. #endif
  121.  
  122. extern CONFIG driver_config;
  123. extern DRV_LIST driver;
  124. extern TPL trampoline;
  125.  
  126. #endif /* GLOBAL_H */
  127.